home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 9 / Night Owl CD-ROM (NOPV9) (Night Owl Publisher) (1993).ISO / 015a / dosm21.zip / FREELOAD.DOC < prev    next >
Text File  |  1993-06-11  |  18KB  |  427 lines

  1.  
  2. ================================================================================
  3.       FREELOAD.SYS :  Ver. 2.1, Copyright (1992,93) by Philip B. Gardner
  4. ================================================================================
  5.  
  6.   FREELOAD.SYS is a device driver which will help maximize the use of low
  7.   memory by releasing memory usually reserved in low memory by LOADHI.SYS
  8.   from Quarterdeck Office Systems. 
  9.  
  10.   FREELOAD.SYS tracks the high memory device loader operations and if it
  11.   is safe to release the low memory after each device initiates, the low
  12.   memory is released and the driver in upper memory is linked into the DOS
  13.   device chain.
  14.  
  15.   FREELOAD.SYS can be used to save 1-2k in a typical configuration.  The
  16.   actual amount of memory saved depends upon on the number and type of
  17.   device drivers loaded high.
  18.  
  19.   Support is provided for:
  20.  
  21.     * fully automatic support of QEMM's LOADHI.SYS and 386MAX's 386LOAD.SYS
  22.     * specifying the name and path of the device loader
  23.     * both character and block devices
  24.     * character drivers which contain an unlimited number of devices
  25.     * DOS Versions 3.1 - 3.31, DOS 4.x, and DOS 5.x (or better?)
  26.  
  27. ================================================================================
  28.  
  29. (Requirements)::
  30.  
  31.         * Requires MS-DOS Version 3.10 or better
  32.  
  33. ================================================================================
  34.  
  35. (Installation)::
  36.  
  37.         (CONFIG.SYS)::
  38.  
  39.         Installation of FREELOAD.SYS requires modifying the contents of
  40.         your CONFIG.SYS file.
  41.  
  42. (Generic Configuration)::
  43.  
  44.         This configuration should work and be the most efficient in 95%
  45.         of all configurations.  For a few real world examples see
  46.         EXAMPLES.DOC
  47.  
  48.         DOS=HIGH[,UMB]                    (DOS 5.0 only)
  49.         REM DEVICE=STOPMAX.SYS [options]  (Stops kernel from loading in HMA)
  50.         DEVICE=(xms/umb memory manager)
  51.         DEVICE=DOSMAX.EXE [options]       (DOSMAX loads high automatically)
  52.         DEVICE=FREELOAD.SYS [-S][other options]
  53.         REM DEVICE=LOADHI.SYS DOSMAX.EXE  (or DOSMAX loaded high with loader)
  54.         SHELL=SHELLMAX.COM COMMAND.COM /P
  55.         BUFFERS=20
  56.         FILES=40
  57.         LASTDRIVE=Z
  58.  
  59.         Add a DEVICE= line for FREELOAD.SYS in your config.sys.  FREELOAD
  60.         should be loaded immediately after the XMS and UMB memory manager
  61.  
  62.         DEVICE=(Memory Manager)
  63.         DEVICE=FREELOAD.SYS [options]
  64.  
  65.         The default loader pathname is "C:\QEMM\LOADHI.SYS".  If FREELOAD
  66.         cannot open this pathname, a message will displayed alerting you
  67.         to "Use /Fpathname to override."  An example which uses this switch
  68.         is shown below:
  69.  
  70.         DEVICE=FREELOAD.SYS /F D:\QEMM\LOADHI.SYS
  71.  
  72.         Version 1.8 adds full 386MAX support, so if 386MAX is detected, or
  73.         the /A2 switch is used, then the default loader pathname is changed
  74.         to "C:\386MAX\386LOAD.SYS."
  75.  
  76. (Tip)::
  77.  
  78.         If you prefer that a particular device driver is not affected by
  79.         the operation of FREELOAD, place the DEVICE= for that device above
  80.         the DEVICE=FREELOAD.SYS entry.  This may be necessary in the case
  81.         that a particular driver is not compatible with FREELOAD.
  82.  
  83. ================================================================================
  84.  
  85. (Syntax)::
  86.  
  87.         The only thing to remember about syntax for the command line is
  88.         that just about anything works.  What this means is that you
  89.         should be able to type in the options on the command line the
  90.         way they make sense to you.
  91.  
  92.         To illustrate this point, the following command line example
  93.         is mutated several different ways.
  94.  
  95.         DEVICE=FREELOAD.SYS /R+ /P+ /FC:\QEMM\LOADHI.SYS
  96.         DEVICE=FREELOAD.SYS -R+ -P+ -F C:\QEMM\LOADHI.SYS
  97.         DEVICE=FREELOAD.SYS R+ P+ F C:\QEMM\LOADHI.SYS
  98.         DEVICE=FREELOAD.SYS R+P+FC:\QEMM\LOADHI.SYS
  99.         DEVICE=FREELOAD.SYS -R+P+FC:\QEMM\LOADHI.SYS
  100.  
  101.         ... and so on.  There must be an EOL or space following the
  102.         filename paramter the /Fpathname switch
  103.  
  104.         FREELOAD 1.9 and above adds optional full word syntax.  The new
  105.         syntax looks like this:
  106.  
  107.         DEVICE=FREELOAD.SYS /REPORT:- /PAUSE:- /LOADER=C:\QEMM\LOADHI.SYS
  108.         DEVICE=FREELOAD.SYS -REPORT:- -PAUSE:- -LOADER=C:\QEMM\LOADHI.SYS
  109.         DEVICE=FREELOAD.SYS REPORT:- PAUSE:- LOADER=C:\QEMM\LOADHI.SYS
  110.         DEVICE=FREELOAD.SYS REPORT-PAUSE-LOADER=C:\QEMM\LOADHI.SYS
  111.         DEVICE=FREELOAD.SYS -REPORT-PAUSE--LOADER=C:\QEMM\LOADHI.SYS
  112.  
  113.         Obviously when using full words, it is easier to keep the words
  114.         separated so that is clear to read.  An optional [:] or [=] may be
  115.         used for switches (i.e. REPORT:+ or LOADER=C:\LOADHI.SYS).  These
  116.         optional delimiters are used interchangeably and can also be used
  117.         with the single letter switches.  Remember to check your spelling
  118.         because the single letter interface is still intact.
  119.  
  120. (Switch Options)::
  121.  
  122.         The following list of switch options is organized by:
  123.  
  124.         - Control of FREELOAD Reports (/R:/P:/N:)
  125.         - Override the Default Name and Path of the Loader (/F=)
  126.         - Setting the Memory Strategy (/M=)
  127.         - Overriding Directory Structure Size (/D=)
  128.         - Control the Alternate Memory Manager Method (/A=)
  129.         - Controlling the Shrink Feature (/S:)
  130.         - Response file for FREELOAD (@)
  131.  
  132.     (Control of FREELOAD Reports)::
  133.  
  134.         (REPORT)::      R[+ or -]        (toggle:  default +)
  135.  
  136.         Use /R- or /REPORT:- to disable the report after you are
  137.         satisfied with the configuration of DOSMAX.EXE
  138.  
  139.         (PAUSE)::       P[+ or -]        (toggle:  default +)
  140.  
  141.         Use /P- or /PAUSE:- to disable the pause after the report as
  142.         long as there are no errors or warnings.
  143.  
  144.         (NOPAUSE)::     N[+ or -]        (toggle:  default -)
  145.  
  146.         Use /N+ or /NOPAUSE:+ to never pause after the report, even if
  147.         there are errors.  This switch can be used if your configuration
  148.         generates a warning or error message which you choose to ignore.
  149.  
  150.     (Override the Default Name and Path of the Loader)::
  151.  
  152.         (LOADER)::      F[pathname]      (string=  default=C:\QEMM\LOADHI.SYS)
  153.  
  154.         Use /Fpathname or /LOADER=pathname to specify the filename and path
  155.         of the device loader provided with your upper memory manager.  For
  156.         example, if this device driver is on drive D:
  157.  
  158.                 DEVICE=FREELOAD.SYS /FD:\QEMM\LOADHI.SYS
  159.  
  160.         If FREELOAD cannot find this file, it will not load.
  161.  
  162.     (Setting the Memory Strategy)::
  163.  
  164.         (STRATEGY)::    Mn               (value:  n = 0)   
  165.  
  166.         Use /Mn or /STRATEGY=n to control the memory allocation strategy
  167.         which FREELOAD uses to allocate its upper memory block.  The default
  168.         strategy is is First Fit (/M0).  This means that FREELOAD will use
  169.         the first upper memory block returned by the XMS manager.  The other
  170.         options are Best Fit (/M1) and Last Fit (/M2).  Best Fit uses the
  171.         block which most closely matches the size needed, and Last Fit uses
  172.         the highest block big enough to handle the request.  Values other
  173.         than 0, 1, or 2 are ignored and the previous setting of this option
  174.         is used.
  175.  
  176.     (Overriding Directory Structure Size)::
  177.  
  178.         (CDSSIZE)::     Dnn              (value:  nn = 88)
  179.  
  180.         Use /Dnn or /CDSSIZE=nn to set the Drive Table Size.  Values other
  181.         than the MS-DOS 4.0 - 6.0 Drive Table Size of 88 are only allowed if
  182.         the true MS-DOS version is greater than 5.0.  The Drive Table Size
  183.         for DOS 3.x is 81. The /Dnn switch is only necessary if FREELOAD
  184.         can't determine the Drive Table Size automatically.
  185.  
  186.     (Control the Alternate Memory Manager Method)::
  187.  
  188.         (ALTMETHOD)::   An               (value:  n = 0)
  189.  
  190.         Use /An to select the method FREELOAD uses to detect and track
  191.         high device loaders.  There are 3 possible values.  (0), the
  192.         default, means that FREELOAD will automatically select the proper
  193.         method.  (1), method 1 is for device loaders compatible with
  194.         LOADHI.SYS from Quarterdeck.  (2), method 2 is for device loaders
  195.         compatible with 386LOAD.SYS from Qualitas.  This switch is included
  196.         only for debugging purposes.
  197.  
  198.     (Controlling the Shrink Feature)
  199.  
  200.         (SHRINK)::      S[+ or -]        (toggle:  default -)
  201.  
  202.         FREELOAD normally takes approximately 1.4K of high memory. Use /S+
  203.         or /SHRINK:+ to reduce this requirement to 16 bytes just before
  204.         the shell is loaded from CONFIG.SYS.  Shrinking may cause problems
  205.         with high memory optimizers, but the switch can be safely used
  206.         after the system is optimized, to free another 1.4K of high memory.
  207.  
  208.   (Response file for FREELOAD)::
  209.  
  210.         Parameters for FREELOAD may be read from a response file by using the
  211.         @pathname syntax:
  212.         
  213.         FREELOAD.SYS @RESPONSE.FIL
  214.  
  215.         Response files may be commented by using a ";","#",or "*" character
  216.         before the comment.
  217.  
  218.         *  everything in square brackets "[]" is optional
  219.  
  220. (CONFIG.SYS Line)::
  221.  
  222.         DEVICE=FREELOAD.SYS [/ or -][R[+]P[+]N[+]S[+]Fpathname]
  223.  
  224.         device mode default: /R-/P-/N-/S-/Mn/FC:\QEMM\LOADHI.SYS
  225.  
  226.         *  No Report status messages
  227.         *  No Pause after report
  228.         *  Pause on errors or warnings
  229.         *  Use the First Fit memory allocation strategy
  230.         *  Default Loader Pathname = "C:\QEMM\LOADHI.SYS"
  231.  
  232. ================================================================================
  233.  
  234. (Report Format)::
  235.  
  236.       FREELOAD.SYS :  Ver. 2.1, Copyright (1992) by Philip B. Gardner
  237.              ERROR :  (Error Messages)
  238.            WARNING :  (Warning Messages)
  239.             ADVICE :  (Advisory Messages)
  240.                    :  (Report Messages)
  241.                    :  (Allocation Status)
  242.              PAUSE :  Press any key to continue... 
  243.  
  244. (Report Note)::
  245.  
  246.         FREELOAD.SYS may be replaced by FREELOAD.OVL.  The exact name of the
  247.         module is dependent upon the circumstances under which FREELOAD.SYS
  248.         reports.  This detail is important only as diagnostic information.
  249.  
  250. ================================================================================
  251.  
  252. (Error Messages)::
  253.  
  254.         MS-DOS version 3.10 or above is required
  255.         XMS manager not installed
  256.         DOS version is not compatible
  257.         Can't load in High Memory
  258.         An 80186 processor or better is required
  259.         Device Loader not found
  260.  
  261. ================================================================================
  262.  
  263. (Warning Messages)::
  264.  
  265.         Unknown option in command line
  266.         Unknown option on line #0000
  267.         Extra characters on command line
  268.         Missing or invalid option file XXXXXXXX.XXX
  269.         Line length overflow at line #0000
  270.         Drive Table Size not determined or out of range
  271.  
  272. ================================================================================
  273.  
  274. (Advisory Messages)::
  275.  
  276.         Use /Fpathname to override
  277.         Use /Dnn switch to set Drive Table size
  278.  
  279. ================================================================================
  280.  
  281. (Report Messages)::
  282.  
  283.         Processing option file XXXXXXXX.XXX
  284.     Effection section is [XXXXXXXX]
  285.         Drive Table Size set to 00h
  286.         [pathname]                      (/Fpathname parameter if error)
  287.  
  288. ================================================================================
  289.  
  290. (Allocation Status)::
  291.  
  292.         FREELOAD moved to 0000
  293.         Not enough Hi Memory for FREELOAD  
  294.  
  295. ================================================================================
  296.  
  297. (Changes)::
  298.  
  299.     (Version 1.1)::
  300.  
  301.     (1) Fixed problem where character devices were skipped if a
  302.         block device was loaded first
  303.  
  304.     (2) Added support for block devices.  This grew the size of
  305.         FREELOAD to 880 bytes so FREELOAD now shrinks to 16 bytes
  306.         when finished.  This frees a .8k block of upper memory
  307.         which is not needed after all devices are loaded.
  308.  
  309.     (Version 1.2)::
  310.  
  311.     (1) Added support for character drivers which contain multiple
  312.         devices.  There is a requirement for 16 bytes of low
  313.         memory for a multiple device driver, but this 16 bytes
  314.         supports an unlimited number of devices within the driver.
  315.         Without the 16 bytes, DOS believes the initialization of the
  316.         driver has failed and only the first device is linked.
  317.  
  318.     (Version 1.3)::
  319.  
  320.     (1) Fixed problem with failing to build a Drive Parameter Block
  321.         when a multiple device driver ended with a block device.
  322.  
  323.     (2) Changed automatic reduce to a command line option.  FREELOAD
  324.         now takes 1K bytes high.  If the /S+ (shrink option is used)
  325.         this size is reduced to 16 bytes just before the shell is loaded.
  326.  
  327.     (Version 1.4)::
  328.  
  329.     (1) Improved multiple device failure mode.  If a multiple device
  330.         driver has begun the initiate phase and fails, the high device
  331.         is left unlinked, and the loader is left in place with memory
  332.         and the device chain set to the length of the last successful
  333.         initialization.  This method more closely emultates DOS.
  334.  
  335.     (2) Added check that resets FREELOAD if the loader doesn't load the
  336.         device in high memory successfully.
  337.  
  338.     (3) Optimized code to reduce memory requirement back to 1K
  339.  
  340.     (Version 1.5)::
  341.  
  342.     (1) Added base 10 display of Drive Table Size message
  343.  
  344.     (Version 1.6)::
  345.  
  346.     (1) Added support for DOS 5 UMB's when moving FREELOAD upto upper
  347.         memory.  Some device loaders will work with DOS 5 UMB's, and
  348.         now you can use the loader instead of DEVICEHIGH= if you want.
  349.  
  350.     (2) Added /Mn option, to allow general control of memory allocation
  351.         strategy.  First Fit = 0, Best Fit = 1, and Last Fit = 2 were
  352.         implemented for both DOS 5 UMB's, and XMS UMB's.
  353.  
  354.     (3) Added check for a 186 processor or better (allows V20/V30).
  355.  
  356.     (4) Now supporting separate program FREELO86.SYS.  This program is
  357.         functionally identical to FREELO86.SYS, but is compiled to work
  358.         on 8086/8088 processors also.  The stub left in high memory
  359.         is 16 bytes greater using with this variation.
  360.  
  361.     (Version 1.7)::
  362.  
  363.     (1) Changed common parsing algorithum to add support for Hex-Notation
  364.         input.  This input method is not used in FREELOAD at this time.
  365.  
  366.     (2) Fixed case where device fails but the loader tells DOS the device
  367.         was ok.  The high memory block is released, but the loader still
  368.         reserves low memory.  FREELOAD linked the released driver, but now
  369.         detects the condition, does not complete the link, and releases
  370.         the stub.
  371.  
  372.     (Version 1.8)::
  373.  
  374.     (1) Added automatic support for 386LOAD.SYS from Qualitas.  The proper
  375.         method FREELOAD uses is determined automatically, but may be
  376.         overridden with the /An switch.  The option adds as much as
  377.         246 bytes to the pre-shrink size of FREELOAD.
  378.  
  379.     (2) DOS 3.x and 4.x with FREELOAD and 386LOAD was crashing because
  380.         the 386LOAD stub hooked INT 21h, apparently to return a different
  381.         DOS version to the device being loaded.  This "feature" is now
  382.         disabled by FREELOAD so that the stub may be freed.  DOS 5 (and
  383.         above?) used func 4B05h (set execution state), so the hook checking
  384.         is bypassed.  The hook checking is implemented for /A2 only (or
  385.         auto /A0).
  386.  
  387.     (3) If method 2 (/A2 or 386MAX detected with /A0), the default loader
  388.         name is "C:\386MAX\386LOAD.SYS."  This makes compatability with
  389.         386MAX completely transparent to the user in most cases.
  390.  
  391.     (Version 1.9)::
  392.  
  393.     (1)  Reorganized code to enable an overlay method of module selection
  394.          to automate processor selection and split up .SYS and .EXE modules
  395.          to reduce the initialization memory to minimum.
  396.  
  397.     (2)  FREELOAD now automatically detects the processor type and chooses
  398.          separate code modules if appropriate.  The 186 processor require-
  399.          ment of previous versions is no longer applicable.
  400.  
  401.     (3)  Added optional full word syntax to argument parser.  The old style
  402.          single letter switch interface is still intact.  The switch lists
  403.          now show the optional word with the switch.
  404.  
  405.     (Version 2.0)::
  406.  
  407.     (1)  Added support for DOS 6.0's changes in the way devices are
  408.          initialized.  FREELOAD 1.7 was not compatible with DOS 6.0 or
  409.          DBLSPACE.  FREELOAD 2.0 now supports the new version seamlessly.
  410.  
  411.     (2)  Added support for loaders which build sub-segments for devices
  412.          in high memory.  This caused problems while preparing block
  413.          devices.
  414.  
  415.     (3)  Added option response file input with @filename.opt syntax
  416.  
  417.     (Version 2.1)::
  418.  
  419.     (1)  Fixed problem with finding DOS 6.0 CONFIG variable for machines
  420.          whose bios'es don't intialize memory properly.
  421.  
  422.     (2)  Fixed problem with some configurations of non-DOS 6.x systems
  423.          and non-DBLSPACE systems which caused an Exception 13 after
  424.          FREELOAD was loaded.
  425.  
  426. ================================================================================
  427.